/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package business;

import data.CampanhaData;
import data.PacotesData;
import java.sql.SQLException;
import java.util.ArrayList;
/*comentarioa a dizer que o nelson é gay*/
/**
 *
 * @author Tiago
 */
public class Pacotes {

    PacotesData dataP;
    CampanhaData dataC;
    
    public Pacotes() {
        dataP = new PacotesData();
        dataC = new CampanhaData();
    }

    public Pacote getPacote(int codPacote) throws Exception{
        return dataP.getPacoteByCod(codPacote);
    }

    public void addPacote(String nome, String descricao, int preco) throws Exception{
        dataP.addPacote(nome, descricao, preco);
    }

    public void removerPacote(int codPacote) throws Exception{
        dataP.removerPacote(codPacote);
    }

    public void adicionaCanalPacote(int codPacote,int cod_canal) throws SQLException{
        dataP.adicionaCanalPacote(codPacote, cod_canal);
    }

    public void removerCanalPacote(int codPacote,int cod_canal) throws SQLException{
        dataP.removerCanalPacote(codPacote, cod_canal);
    }
    
    public void setPrecoPacote(int codPacote,int preco) throws SQLException {
        dataP.setPrecoPacote(codPacote, preco);
    }


    public ArrayList<Pacote> daPacotesCampanha(int codCampanha) throws Exception{
        ArrayList<Pacote> lista = new ArrayList<Pacote>();
        Pacote p;
        for(int i : dataC.daCodPacoteCampanha(codCampanha)){
            p = dataP.getPacoteByCod(i);
            lista.add(p);
        }
        return lista;
    }

    public ArrayList<Pacote> daPacotesFaltamCampanha(int codCampanha) throws Exception{
        ArrayList<Pacote> lista = new ArrayList<Pacote>();
        ArrayList<Pacote> pacotes = daPacotesCampanha(codCampanha);
        for (Pacote p : consultarPacotes() ){
            if(pacotes.contains(p)){
            }
            else{
                lista.add(p);
            }
        }
            return lista;
    }



    public ArrayList<Pacote> consultarPacotes() throws Exception {
        return dataP.consultarPacotes();
    }

    public ArrayList<Pacote> consultarPacCliente(int codCliente) throws Exception {

        ArrayList<Pacote> lista = new ArrayList<Pacote>();
        for (Pacote p : dataP.consultarPacCliente(codCliente)){
            lista.add(p);
        }
        for (Campanha c : dataC.consultarCampCliente(codCliente)){
            for (Pacote p : daPacotesCampanha(c.getCodigo())){
                lista.add(p);
            }
        }

        return lista;
    }

    public ArrayList<Pacote> consultarPacFaltamCliente(int codCliente) throws Exception {
        ArrayList<Pacote> lista = new ArrayList<Pacote>();
        ArrayList<Pacote> pacotes = consultarPacCliente(codCliente);
        for(Pacote p : consultarPacotes()){
            if (pacotes.contains(p)){
            }
            else{
                lista.add(p);
            }
        }
        return lista;
    }




}
